Code coverage report for src/behavior-instance.js

Statements: 21.31% (13 / 61)      Branches: 0% (0 / 26)      Functions: 30% (3 / 10)      Lines: 22.03% (13 / 59)      Ignored: none     

All files » src/ » behavior-instance.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 1301     1   1   1     1 1                                           1           1                                                                     1                                   1                               1                           1     1        
System.register([], function (_export) {
  "use strict";
 
  var BehaviorInstance;
 
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
  return {
    setters: [],
    execute: function () {
      BehaviorInstance = (function () {
        function BehaviorInstance(behavior, executionContext, instruction) {
          _classCallCheck(this, BehaviorInstance);
 
          this.behavior = behavior;
          this.executionContext = executionContext;
          this.isAttached = false;
 
          var observerLookup = behavior.observerLocator.getOrCreateObserversLookup(executionContext),
              handlesBind = behavior.handlesBind,
              attributes = instruction.attributes,
              boundProperties = this.boundProperties = [],
              properties = behavior.properties,
              i,
              ii;
 
          behavior.ensurePropertiesDefined(executionContext, observerLookup);
 
          for (i = 0, ii = properties.length; i < ii; ++i) {
            properties[i].initialize(executionContext, observerLookup, attributes, handlesBind, boundProperties);
          }
        }
 
        BehaviorInstance.prototype.created = function created(context) {
          if (this.behavior.handlesCreated) {
            this.executionContext.created(context);
          }
        };
 
        BehaviorInstance.prototype.bind = function bind(context) {
          var skipSelfSubscriber = this.behavior.handlesBind,
              boundProperties = this.boundProperties,
              i,
              ii,
              x,
              observer,
              selfSubscriber;
 
          for (i = 0, ii = boundProperties.length; i < ii; ++i) {
            x = boundProperties[i];
            observer = x.observer;
            selfSubscriber = observer.selfSubscriber;
            observer.publishing = false;
 
            if (skipSelfSubscriber) {
              observer.selfSubscriber = null;
            }
 
            x.binding.bind(context);
            observer.call();
 
            observer.publishing = true;
            observer.selfSubscriber = selfSubscriber;
          }
 
          if (skipSelfSubscriber) {
            this.executionContext.bind(context);
          }
 
          if (this.view) {
            this.view.bind(this.executionContext);
          }
        };
 
        BehaviorInstance.prototype.unbind = function unbind() {
          var boundProperties = this.boundProperties,
              i,
              ii;
 
          if (this.view) {
            this.view.unbind();
          }
 
          if (this.behavior.handlesUnbind) {
            this.executionContext.unbind();
          }
 
          for (i = 0, ii = boundProperties.length; i < ii; ++i) {
            boundProperties[i].binding.unbind();
          }
        };
 
        BehaviorInstance.prototype.attached = function attached() {
          if (this.isAttached) {
            return;
          }
 
          this.isAttached = true;
 
          if (this.behavior.handlesAttached) {
            this.executionContext.attached();
          }
 
          if (this.view) {
            this.view.attached();
          }
        };
 
        BehaviorInstance.prototype.detached = function detached() {
          if (this.isAttached) {
            this.isAttached = false;
 
            if (this.view) {
              this.view.detached();
            }
 
            if (this.behavior.handlesDetached) {
              this.executionContext.detached();
            }
          }
        };
 
        return BehaviorInstance;
      })();
 
      _export("BehaviorInstance", BehaviorInstance);
    }
  };
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL3RlbXBsYXRpbmcvc3JjL2JlaGF2aW9yLWluc3RhbmNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztNQUFhLGdCQUFnQjs7Ozs7OztBQUFoQixzQkFBZ0I7QUFDaEIsaUJBREEsZ0JBQWdCLENBQ2YsUUFBUSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBQztnQ0FEekMsZ0JBQWdCOztBQUV6QixjQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUN6QixjQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7QUFDekMsY0FBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7O0FBRXhCLGNBQUksY0FBYyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsMEJBQTBCLENBQUMsZ0JBQWdCLENBQUM7Y0FDdEYsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXO2NBQ2xDLFVBQVUsR0FBRyxXQUFXLENBQUMsVUFBVTtjQUNuQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFO2NBQzNDLFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVTtjQUNoQyxDQUFDO2NBQUUsRUFBRSxDQUFDOztBQUVWLGtCQUFRLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUM7O0FBRW5FLGVBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDO0FBQzdDLHNCQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1dBQ3RHO1NBQ0Y7O0FBbEJVLHdCQUFnQixXQW9CM0IsT0FBTyxHQUFBLGlCQUFDLE9B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QkFBRyxJQUFJLENBQUMsSUFBSSxFQUFDO0FBQ1gsa0JBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDdEI7O0FBRUQsZ0JBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUM7QUFDL0Isa0JBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNsQztXQUNGO1NBQ0Y7O2VBdEdVLGdCQUFnQjs7O2tDQUFoQixnQkFBZ0IiLCJmaWxlIjoiL1VzZXJzL0Vpc2VuYmVyZ0VmZmVjdC9Eb2N1bWVudHMvR2l0SHViL1RoZSBEdXJhbmRhbCBQcm9qZWN0L2F1cmVsaWEvdGVtcGxhdGluZy9zcmMvYmVoYXZpb3ItaW5zdGFuY2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQmVoYXZpb3JJbnN0YW5jZSB7XG4gIGNvbnN0cnVjdG9yKGJlaGF2aW9yLCBleGVjdXRpb25Db250ZXh0LCBpbnN0cnVjdGlvbil7XG4gICAgdGhpcy5iZWhhdmlvciA9IGJlaGF2aW9yO1xuICAgIHRoaXMuZXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gICAgdGhpcy5pc0F0dGFjaGVkID0gZmFsc2U7XG5cbiAgICB2YXIgb2JzZXJ2ZXJMb29rdXAgPSBiZWhhdmlvci5vYnNlcnZlckxvY2F0b3IuZ2V0T3JDcmVhdGVPYnNlcnZlcnNMb29rdXAoZXhlY3V0aW9uQ29udGV4dCksXG4gICAgICAgIGhhbmRsZXNCaW5kID0gYmVoYXZpb3IuaGFuZGxlc0JpbmQsXG4gICAgICAgIGF0dHJpYnV0ZXMgPSBpbnN0cnVjdGlvbi5hdHRyaWJ1dGVzLFxuICAgICAgICBib3VuZFByb3BlcnRpZXMgPSB0aGlzLmJvdW5kUHJvcGVydGllcyA9IFtdLFxuICAgICAgICBwcm9wZXJ0aWVzID0gYmVoYXZpb3IucHJvcGVydGllcyxcbiAgICAgICAgaSwgaWk7XG5cbiAgICBiZWhhdmlvci5lbnN1cmVQcm9wZXJ0aWVzRGVmaW5lZChleGVjdXRpb25Db250ZXh0LCBvYnNlcnZlckxvb2t1cCk7XG5cbiAgICBmb3IoaSA9IDAsIGlpID0gcHJvcGVydGllcy5sZW5ndGg7IGkgPCBpaTsgKytpKXtcbiAgICAgIHByb3BlcnRpZXNbaV0uaW5pdGlhbGl6ZShleGVjdXRpb25Db250ZXh0LCBvYnNlcnZlckxvb2t1cCwgYXR0cmlidXRlcywgaGFuZGxlc0JpbmQsIGJvdW5kUHJvcGVydGllcyk7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlZChjb250ZXh0KXtcbiAgICBpZih0aGlzLmJlaGF2aW9yLmhhbmRsZXNDcmVhdGVkKXtcbiAgICAgIHRoaXMuZXhlY3V0aW9uQ29udGV4dC5jcmVhdGVkKGNvbnRleHQpO1xuICAgIH1cbiAgfVxuXG4gIGJpbmQoY29udGV4dCl7XG4gICAgdmFyIHNraXBTZWxmU3Vic2NyaWJlciA9IHRoaXMuYmVoYXZpb3IuaGFuZGxlc0JpbmQsXG4gICAgICAgIGJvdW5kUHJvcGVydGllcyA9IHRoaXMuYm91bmRQcm9wZXJ0aWVzLFxuICAgICAgICBpLCBpaSwgeCwgb2JzZXJ2ZXIsIHNlbGZTdWJzY3JpYmVyO1xuXG4gICAgZm9yKGkgPSAwLCBpaSA9IGJvdW5kUHJvcGVydGllcy5sZW5ndGg7IGkgPCBpaTsgKytpKXtcbiAgICAgIHggPSBib3VuZFByb3BlcnRpZXNbaV07XG4gICAgICBvYnNlcnZlciA9IHgub2JzZXJ2ZXI7XG4gICAgICBzZWxmU3Vic2NyaWJlciA9IG9ic2VydmVyLnNlbGZTdWJzY3JpYmVyO1xuICAgICAgb2JzZXJ2ZXIucHVibGlzaGluZyA9IGZhbHNlO1xuXG4gICAgICBpZihza2lwU2VsZlN1YnNjcmliZXIpe1xuICAgICAgICBvYnNlcnZlci5zZWxmU3Vic2NyaWJlciA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIHguYmluZGluZy5iaW5kKGNvbnRleHQpO1xuICAgICAgb2JzZXJ2ZXIuY2FsbCgpO1xuXG4gICAgICBvYnNlcnZlci5wdWJsaXNoaW5nID0gdHJ1ZTtcbiAgICAgIG9ic2VydmVyLnNlbGZTdWJzY3JpYmVyID0gc2VsZlN1YnNjcmliZXI7XG4gICAgfVxuXG4gICAgaWYoc2tpcFNlbGZTdWJzY3JpYmVyKXtcbiAgICAgIHRoaXMuZXhlY3V0aW9uQ29udGV4dC5iaW5kKGNvbnRleHQpO1xuICAgIH1cblxuICAgIGlmKHRoaXMudmlldyl7XG4gICAgICB0aGlzLnZpZXcuYmluZCh0aGlzLmV4ZWN1dGlvbkNvbnRleHQpO1xuICAgIH1cbiAgfVxuXG4gIHVuYmluZCgpe1xuICAgIHZhciBib3VuZFByb3BlcnRpZXMgPSB0aGlzLmJvdW5kUHJvcGVydGllcyxcbiAgICAgICAgaSwgaWk7XG5cbiAgICBpZih0aGlzLnZpZXcpe1xuICAgICAgdGhpcy52aWV3LnVuYmluZCgpO1xuICAgIH1cblxuICAgIGlmKHRoaXMuYmVoYXZpb3IuaGFuZGxlc1VuYmluZCl7XG4gICAgICB0aGlzLmV4ZWN1dGlvbkNvbnRleHQudW5iaW5kKCk7XG4gICAgfVxuXG4gICAgZm9yKGkgPSAwLCBpaSA9IGJvdW5kUHJvcGVydGllcy5sZW5ndGg7IGkgPCBpaTsgKytpKXtcbiAgICAgIGJvdW5kUHJvcGVydGllc1tpXS5iaW5kaW5nLnVuYmluZCgpO1xuICAgIH1cbiAgfVxuXG4gIGF0dGFjaGVkKCl7XG4gICAgaWYodGhpcy5pc0F0dGFjaGVkKXtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzQXR0YWNoZWQgPSB0cnVlO1xuXG4gICAgaWYodGhpcy5iZWhhdmlvci5oYW5kbGVzQXR0YWNoZWQpe1xuICAgICAgdGhpcy5leGVjdXRpb25Db250ZXh0LmF0dGFjaGVkKCk7XG4gICAgfVxuXG4gICAgaWYodGhpcy52aWV3KXtcbiAgICAgIHRoaXMudmlldy5hdHRhY2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIGRldGFjaGVkKCl7XG4gICAgaWYodGhpcy5pc0F0dGFjaGVkKXtcbiAgICAgIHRoaXMuaXNBdHRhY2hlZCA9IGZhbHNlO1xuXG4gICAgICBpZih0aGlzLnZpZXcpe1xuICAgICAgICB0aGlzLnZpZXcuZGV0YWNoZWQoKTtcbiAgICAgIH1cblxuICAgICAgaWYodGhpcy5iZWhhdmlvci5oYW5kbGVzRGV0YWNoZWQpe1xuICAgICAgICB0aGlzLmV4ZWN1dGlvbkNvbnRleHQuZGV0YWNoZWQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==